home *** CD-ROM | disk | FTP | other *** search
- /*
- ** mkisofs for the Amiga (SAS/C compiler)
- ** by Flavio Stanchina <flavio@ies.it> 3/97
- **
- ** renamed functions (prefix sas_) to get the linker
- ** using these instead (also see REDEFINES.WTH) (ARK, 11 Sep 97)
- */
-
- #ifndef _STAT_H
- #define _STAT_H 1
-
- #include <time.h>
-
- typedef unsigned long dev_t; /* device number */
- typedef unsigned long ino_t; /* inode number */
- typedef unsigned short mode_t; /* permissions */
- typedef unsigned short nlink_t; /* link count */
- typedef unsigned short uid_t; /* owner user id */
- typedef unsigned short gid_t; /* owner group id */
- typedef long off_t; /* file offset */
-
- struct stat
- {
- dev_t st_dev; /* inode's device (Amiga: volume node) */
- ino_t st_ino; /* inode's number (Amiga: disk key) */
- mode_t st_mode; /* inode protection mode */
- nlink_t st_nlink; /* number of hard links */
- uid_t st_uid; /* file user id */
- gid_t st_gid; /* file group id */
- dev_t st_rdev; /* device type (Amiga: file system type) */
- off_t st_size; /* file size in bytes */
- time_t st_atime; /* time last accessed */
- time_t st_mtime; /* time last modified */
- time_t st_ctime; /* time last status change */
- // long st_blksize; /* optimal blocksize for I/O */
- long st_blocks; /* blocks allocated for file */
- char *st_comment; /* Amiga file comment */
- };
-
- #define S_IFMT 0170000 /* type of file */
- #define S_IFDIR 0040000 /* directory */
- #define S_IFREG 0100000 /* regular */
- #define S_IFLNK 0120000 /* symbolic link */
-
- #define S_IRWXU 0000700 /* RWX mask for owner */
- #define S_IRUSR 0000400 /* R for owner */
- #define S_IWUSR 0000200 /* W for owner */
- #define S_IXUSR 0000100 /* X for owner */
-
- #define S_IRWXG 0000070 /* RWX mask for group */
- #define S_IRGRP 0000040 /* R for group */
- #define S_IWGRP 0000020 /* W for group */
- #define S_IXGRP 0000010 /* X for group */
-
- #define S_IRWXO 0000007 /* RWX mask for other */
- #define S_IROTH 0000004 /* R for other */
- #define S_IWOTH 0000002 /* W for other */
- #define S_IXOTH 0000001 /* X for other */
-
- #define S_IREAD S_IRUSR
- #define S_IWRITE S_IWUSR
- #define S_IEXEC S_IXUSR
-
- #define S_ISBLK(x) (0)
- #define S_ISCHR(x) (0)
- #define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR)
- #define S_ISREG(x) (((x) & S_IFMT) == S_IFREG)
- #define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK)
-
- int sas_stat(const char *path, struct stat *buf);
- int sas_lstat(const char *path, struct stat *buf);
- int sas_readlink(const char *path, char *buf, size_t bufsize);
-
- #endif /* _STAT_H */
-